package com.bsj.power.common.def.dto.video;

import com.bsj.power.common.def.dto.media.BackVodParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Description 录像回放请求
 * @Author zhaoyang
 * @Date 2023/6/19 14:37
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BackVodRequest {

    /**
     * 服务器IP地址
     */
    private String host;

    /**
     * 服务器视频通道监听端口号 tcp
     */
    private Integer tcpPort;

    /**
     * 服务器视频通道监听端口号 udp
     */
    private Integer udpPort;

    /**
     * 逻辑通道号
     */
    private Integer channelNo;

    /**
     * 数据类型 0:音视频，1:音频，2:视频，3:视频或音视频
     */
    private Integer dataType;

    /**
     * 码流类型 0:主码流,1:子码流
     */
    private Integer streamType;

    /**
     * 存储类型 0:主存储器或灾备存储器,1:主存储器,2:灾备存储器
     */
    private Integer storeType;

    /**
     * 回放方式
     * 0:正常回放；
     * 1:快进回放；
     * 2:关键帧快退回放；
     * 3:关键帧播放；
     * 4:单t贞上传
     */
    private Integer backType;

    /**
     * 快进或快退倍数
     * 回放方式为1和2时，此字段内容有效，否则置0。
     * 0:无效；
     * 1:1 倍；
     * 2:2倍
     * 3:4倍；
     * 4:8倍；
     * 5:16倍
     */
    private Integer speed;

    /**
     * 开始时间 yyyy-MM-dd HH:mm:ss
     */
    private String startTime;

    /**
     * 结束时间 yyyy-MM-dd HH:mm:ss
     */
    private String endTime;

    public BackVodRequest(BackVodParam param) {
        this.backType = param.getBackType();
        this.channelNo = param.getChannelNo();
        this.dataType = param.getDataType();
        this.startTime = param.getStartDate();
        this.endTime = param.getEndDate();
        this.speed = param.getSpeed();
        this.storeType = param.getStoreType();
        this.streamType = param.getStreamType();
    }
}
